The quality of a digital image may be affected by the light conditions at the time of image capture, the quality of the capture device and the skill of the person capturing the image. As a result of these and other factors, digital images often suffer from poor contrast and other problems in one or more areas of the image. In some cases, the lightest area of the image is “washed-out” from over-exposure, incorrect capture device settings or other reasons. In other cases, a dark area of the image is “blacked-out” from under-exposure, incorrect capture device settings or other reasons. In these and other cases, portions of the image suffer from poor contrast as some image values are not perceptible to the human observer.
Some manual methods exist for adjusting the level, brightness, contrast or other attributes of an image to improve these types of problems. However, these methods typically require a user to select the proper tool and demonstrate some degree of skill in applying the tool to an image. Often, image contrast in one area is improved only at a cost of image degradation in another area.
Some automated methods for image contrast enhancement also exist. Histogram equalization is a popular method for contrast enhancement because of its effectiveness and relative simplicity. Histogram equalization may be classified into two groups based on the transformation function used: Global histogram equalization uses a global transformation function for the entire image. Global methods are fast and simple, but their contrast-enhancement power is relatively low. Global methods cannot adapt to local brightness features of an image because only global histogram information is used over the image. Local histogram equalization generally can enhance overall contrast effectively, but the complexity of computation is high due to the use of fully overlapped sub-blocks.
One method of local histogram equalization uses block-overlapped histogram equalization. In this method, a rectangular sub-block of an input image is selected and a histogram of that sub-block is determined. A histogram-equalization function is then calculated for that sub-block. The center pixel of the sub-block is then moved, thereby defining a new sub-block, and the computation is performed again with a new histogram and equalization function. The procedure is repeated for each pixel in the image. Obviously, the computation complexity is very high relative to a global method.